local PROTO_MAP = {
    ["SC_ONSHAKE"] = {
        msgid = 102
    },
    ["SC_GPIO_OUTPUT"] = {
        msgid = 201
    }
}

local proto_func = {}
for protostr, tb in pairs(PROTO_MAP) do 
    proto_func[protostr] = function(...)
        local parms = {...}
        local ret = table.copy(PROTO_MAP[protostr])
        for k, v in pairs(parms) do 
            ret[k] = v
        end
        return ret
    end
end

return proto_func
